#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:taotieren


"""
    rpi.gpio 需要 root 权限，板上运行需要使用
    sudo python interrupts.py
    按键中断
    在 Pin 18 接按键的一个引脚，按键的另一端接地（GND）
"""

""" 非树莓派环境下可以用 rpi.gpio_def 代替 rpi.gpio 来进行程序调试和验证 """
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)


def my_callback(channel):
    print('You pressed the button.')


GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
""" GPIO.FALLING: 1 -> 0 从高变低 下降沿触发
    GPIO.RISING: 0 -> 1 从低变高 上升沿触发
    Pin 18（1） -> GND（0） 从高变低 下降沿触发 按键按下
    Pin 18（1） <- GND（0） 从低变高 上升沿触发 按键松开
    bouncetime：消除按键抖动 单位毫秒（ms）
"""
GPIO.add_event_detect(18, GPIO.FALLING, callback=my_callback, bouncetime=100)

i = 0
while True:
    i = i + 1
    print(i)
    time.sleep(1)
